import 'dart:io';

main() async{
  print('程序开始，执行 main 入口函数');
  print('不能阻塞代码');

  try {

    int firstData = await getFirstData();
    print('第一个数据：$firstData');
    int secondData = await getSecondData();
    print('第二个数据：$secondData');
    int thirdData = await getThirdData();
    print('第三个数据：$thirdData');


  }catch(err){
    print('捕获到错误：$err');
  }

  
}

// 第一个获取数据的函数
Future<int> getFirstData() {
  return Future(() {
    sleep(Duration(seconds: 2));
    // throw '第一个函数执行失败';
    return 11;
  });
}

// 第二个获取数据的函数
Future<int> getSecondData() {
  return Future(() {
    sleep(Duration(seconds: 2));
    return 22;
    // throw '第二个函数执行失败';
  });
}

// 第三个获取数据的函数
Future<int> getThirdData() {
  return Future(() {
    sleep(Duration(seconds: 2));
    return 33;
  });
}